package com.yanqu.road.logic.sort;

import com.yanqu.road.entity.rank.cross.CrossUserRank;
import com.yanqu.road.utils.string.StringUtils;

import java.math.BigInteger;
import java.util.Comparator;

/**
 * pvp个人积分榜单
 * value 是积分
 * param 最后一轮存活时间#最后一轮等级#最后一轮经验#最后一轮经验更新时间#最后一轮锁定时藏品分
 * 积分一样,按照param顺序依次排序,param一样系统随机
 */
public class CrossDaoMuPvpPersonRankSort implements Comparator<CrossUserRank> {

    @Override
    public int compare(CrossUserRank o1, CrossUserRank o2) {
        if (o1.getValue().compareTo(o2.getValue()) != 0) {
            return o2.getValue().compareTo(o1.getValue());
        } else {
            String[] paramList1 = o1.getParam().split("#");
            String[] paramList2 = o2.getParam().split("#");

            for (int i = 0; i < paramList1.length; i++) {
                long param1 = Long.parseLong(paramList1[i]);
                long param2 = Long.parseLong(paramList2[i]);

                // 对于经验更新时间(索引为3)，按照小的排在前面，其他还是大的排在前面
                if (param1 != param2) {
                    if (i == 3) {
                        return Long.compare(param1, param2);
                    } else {
                        return Long.compare(param2, param1);
                    }
                }
            }
        }
        return 0;
    }

}
